home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / JAVA / AWT / MediaTracker.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  2.4 KB  |  224 lines

  1. package java.awt;
  2.  
  3. public class MediaTracker {
  4.    Component target;
  5.    MediaEntry head;
  6.    public static final int LOADING = 1;
  7.    public static final int ABORTED = 2;
  8.    public static final int ERRORED = 4;
  9.    public static final int COMPLETE = 8;
  10.    static final int DONE = 14;
  11.  
  12.    public MediaTracker(Component var1) {
  13.       this.target = var1;
  14.    }
  15.  
  16.    public void addImage(Image var1, int var2) {
  17.       this.addImage(var1, var2, -1, -1);
  18.    }
  19.  
  20.    public synchronized void addImage(Image var1, int var2, int var3, int var4) {
  21.       this.head = MediaEntry.insert(this.head, new ImageMediaEntry(this, var1, var2, var3, var4));
  22.    }
  23.  
  24.    public boolean checkAll() {
  25.       return this.checkAll(false);
  26.    }
  27.  
  28.    public synchronized boolean checkAll(boolean var1) {
  29.       MediaEntry var2 = this.head;
  30.  
  31.       boolean var3;
  32.       for(var3 = true; var2 != null; var2 = var2.next) {
  33.          if ((var2.getStatus(var1) & 14) == 0) {
  34.             var3 = false;
  35.          }
  36.       }
  37.  
  38.       return var3;
  39.    }
  40.  
  41.    public synchronized boolean isErrorAny() {
  42.       for(MediaEntry var1 = this.head; var1 != null; var1 = var1.next) {
  43.          if ((var1.getStatus(false) & 4) != 0) {
  44.             return true;
  45.          }
  46.       }
  47.  
  48.       return false;
  49.    }
  50.  
  51.    public synchronized Object[] getErrorsAny() {
  52.       MediaEntry var1 = this.head;
  53.  
  54.       int var2;
  55.       for(var2 = 0; var1 != null; var1 = var1.next) {
  56.          if ((var1.getStatus(false) & 4) != 0) {
  57.             ++var2;
  58.          }
  59.       }
  60.  
  61.       if (var2 == 0) {
  62.          return null;
  63.       } else {
  64.          Object[] var3 = new Object[var2];
  65.          var1 = this.head;
  66.  
  67.          for(int var5 = 0; var1 != null; var1 = var1.next) {
  68.             if ((var1.getStatus(false) & 4) != 0) {
  69.                var3[var5++] = var1.getMedia();
  70.             }
  71.          }
  72.  
  73.          return var3;
  74.       }
  75.    }
  76.  
  77.    public void waitForAll() throws InterruptedException {
  78.       this.waitForAll(0L);
  79.    }
  80.  
  81.    public synchronized boolean waitForAll(long var1) throws InterruptedException {
  82.       long var3 = System.currentTimeMillis() + var1;
  83.       boolean var5 = true;
  84.  
  85.       while(true) {
  86.          int var6 = this.statusAll(var5);
  87.          if ((var6 & 1) == 0) {
  88.             if (var6 != 8) {
  89.                return false;
  90.             }
  91.  
  92.             return true;
  93.          }
  94.  
  95.          var5 = false;
  96.          long var7;
  97.          if (var1 == 0L) {
  98.             var7 = 0L;
  99.          } else {
  100.             var7 = var3 - System.currentTimeMillis();
  101.             if (var7 <= 0L) {
  102.                return false;
  103.             }
  104.          }
  105.  
  106.          this.wait(var7);
  107.       }
  108.    }
  109.  
  110.    public int statusAll(boolean var1) {
  111.       MediaEntry var2 = this.head;
  112.  
  113.       int var3;
  114.       for(var3 = 0; var2 != null; var2 = var2.next) {
  115.          var3 |= var2.getStatus(var1);
  116.       }
  117.  
  118.       return var3;
  119.    }
  120.  
  121.    public boolean checkID(int var1) {
  122.       return this.checkID(var1, false);
  123.    }
  124.  
  125.    public synchronized boolean checkID(int var1, boolean var2) {
  126.       MediaEntry var3 = this.head;
  127.  
  128.       boolean var4;
  129.       for(var4 = true; var3 != null; var3 = var3.next) {
  130.          if (var3.getID() == var1 && (var3.getStatus(var2) & 14) == 0) {
  131.             var4 = false;
  132.          }
  133.       }
  134.  
  135.       return var4;
  136.    }
  137.  
  138.    public synchronized boolean isErrorID(int var1) {
  139.       for(MediaEntry var2 = this.head; var2 != null; var2 = var2.next) {
  140.          if (var2.getID() == var1 && (var2.getStatus(false) & 4) != 0) {
  141.             return true;
  142.          }
  143.       }
  144.  
  145.       return false;
  146.    }
  147.  
  148.    public synchronized Object[] getErrorsID(int var1) {
  149.       MediaEntry var2 = this.head;
  150.  
  151.       int var3;
  152.       for(var3 = 0; var2 != null; var2 = var2.next) {
  153.          if (var2.getID() == var1 && (var2.getStatus(false) & 4) != 0) {
  154.             ++var3;
  155.          }
  156.       }
  157.  
  158.       if (var3 == 0) {
  159.          return null;
  160.       } else {
  161.          Object[] var4 = new Object[var3];
  162.          var2 = this.head;
  163.  
  164.          for(int var6 = 0; var2 != null; var2 = var2.next) {
  165.             if (var2.getID() == var1 && (var2.getStatus(false) & 4) != 0) {
  166.                var4[var6++] = var2.getMedia();
  167.             }
  168.          }
  169.  
  170.          return var4;
  171.       }
  172.    }
  173.  
  174.    public void waitForID(int var1) throws InterruptedException {
  175.       this.waitForID(var1, 0L);
  176.    }
  177.  
  178.    public synchronized boolean waitForID(int var1, long var2) throws InterruptedException {
  179.       long var4 = System.currentTimeMillis() + var2;
  180.       boolean var6 = true;
  181.  
  182.       while(true) {
  183.          int var7 = this.statusID(var1, var6);
  184.          if ((var7 & 1) == 0) {
  185.             if (var7 != 8) {
  186.                return false;
  187.             }
  188.  
  189.             return true;
  190.          }
  191.  
  192.          var6 = false;
  193.          long var8;
  194.          if (var2 == 0L) {
  195.             var8 = 0L;
  196.          } else {
  197.             var8 = var4 - System.currentTimeMillis();
  198.             if (var8 <= 0L) {
  199.                return false;
  200.             }
  201.          }
  202.  
  203.          this.wait(var8);
  204.       }
  205.    }
  206.  
  207.    public int statusID(int var1, boolean var2) {
  208.       MediaEntry var3 = this.head;
  209.  
  210.       int var4;
  211.       for(var4 = 0; var3 != null; var3 = var3.next) {
  212.          if (var3.getID() == var1) {
  213.             var4 |= var3.getStatus(var2);
  214.          }
  215.       }
  216.  
  217.       return var4;
  218.    }
  219.  
  220.    synchronized void setDone() {
  221.       this.notifyAll();
  222.    }
  223. }
  224.